Managing notifications across services

ABSTRACT

First notification data is sent to a first client service and second notification data to a second client service. The first notification data and the second notification data notify a user of a message about an activity that is of interest to the user. A read notification is received indicating that the first notification data sent to the first client service has been interacted with by the user. The second notification data sent to the second client service is determined not to have been interacted with by the user. Responsive to determining that the second notification data sent to the second client service has not been interacted with by the user, a modify instruction is sent to the second client device that hosts the second client service. The modify instruction to cause a modification of the second notification data.

CLAIM OF PRIORITY

The present application is a continuation of U.S. patent application Ser. No. 15/943,050, filed Apr. 2, 2018, which is a continuation of U.S. patent application Ser. No. 15/395,315, filed Dec. 30, 2016, which issued on Apr. 17, 2018, as U.S. Pat. No. 9,948,592, which is a continuation of U.S. patent application Ser. No. 13/797,431 filed Mar. 12, 2013, which issued on Jan. 31, 2017, as U.S. Pat. No. 9,560,001, which claims the benefit of U.S. Provisional Application No. 61/619,320, filed on Apr. 2, 2012, each of which are hereby incorporated by reference in their entirety herein.

BACKGROUND

With an advancement of the Internet, a variety of networking applications are developed. For example, an electronic messaging application, a music application, a social network application, and a search application are developed. Generally, a user name and a password are used to access one or more of the networking applications. Some of the networking applications allow a user to chat with another user, to post a message on a website account of the other user, and to receive a message from the other user.

When a user sends a message to another user, a notification is provided to the other user that the message is received. However, sometimes, multiple notifications that the message is received are provided to the other user. Also, notifications are generated in various other instances, e.g., when a user sends a tagged photo to another user, uploads a photo to a website account of the user within a social network, posts to the website account, adds the other user to a circle within the website account of the social network, etc. In these instances, multiple notifications are received regarding each instance by the other user. The reception of multiple notifications for each instance may be frustrating to the other user.

SUMMARY

The present disclosure relates managing notifications across various client services.

Various implementations of the present disclosure provide systems and methods for managing notifications across various client services. It should be appreciated that the implementations of the present disclosure can be implemented in numerous ways, e.g., a process, an apparatus, a system, a device or a method on a computer-readable medium. Several implementations of the present disclosure are described below.

In some implementations, a method for managing notifications is provided. When a message is sent by one user to another user, multiple notifications are generated to notify the other user of the reception of the same message. For example, a notification is generated within a representation of an electronic messaging service, another notification is generated within a representation of a toolbar service, yet another notification is generated within a representation of a social network service, another notification is generated within a representation of an operating system service, a notification is generated within a representation of a widget service, and a notification is generated within a representation of a mobile application. When the other user reads one of the notifications, the remaining notifications are automatically modified, e.g., deleted or shaded or unbolded. There is no need for the other user to read all the notifications to access the same message.

In some implementations, a method for managing notifications is described. The method includes sending notification data to a first client service and a second client service for a message. The method further includes receiving an indication that the notification data has been interacted with using the first or second client service. The method includes updating a read status of the notification data when the indication is received, such that the notification data at the first and second client services has a same status indicator.

These and other implementations can include one or more of the following features.

In various implementations, the operation of updating of the read status includes marking the read status as read without requiring a message that indicates that the notification data is read via the second client service.

In some implementations, the method includes receiving a network message that is generated using a website account interface. The website account interface is associated with a first website account. The network message is designated for a second website account and the first and second website accounts are associated with the first client service. The method includes generating the notification data based on the network message.

In some implementations, the method includes associating the notification data with a first identifier and the read status. The read status indicates whether the notification data is read via the first and second client services. The operation of associating the notification data with the first identifier and the read status includes assigning a first identification number to the notification data and assigning the read status to the notification data. The method includes associating the notification data with a second identifier. The operation of associating the notification data with the second identifier includes assigning a second identification number to the notification data.

In various implementations, the method includes initiating the read status to indicate that the notification data is unread via the first client service. The operation of initiating the read status to indicate that the notification data is unread via the first client service includes assigning a value to the read status to indicate that the notification data is unread via the first client service. The method includes initiating the read status to indicate that the notification data is unread via the second client service. The operation of initiating the read status to indicate that the notification data is unread via the second client service includes assigning the value to the read status to indicate that the notification data is unread via the second client service.

In some implementations, the operation of receiving the indication that the notification data has been interacted with includes receiving a read notification message indicating that the notification data is read by a user via the first client service.

In some implementations, the operation of receiving the indication that the notification data has been interacted with includes receiving a message including the indication via a network from a client device.

In several implementations, the operation of sending the notification data to the first client service includes sending the notification data to the first client service via a network. The operation of sending the notification data to the second client service includes sending the notification data to the second client service via the network. Moreover, the operation of updating the read status includes updating a first value of the read status to a second value.

In some implementations, the method includes sending a modify instruction message to the second client service in response to updating the read status. The operation of sending the modify instruction message to the second client service includes sending the modify instruction message via a network to a client device.

In various implementations, the first client service includes a social network service, an electronic messaging service, or a telecommunications service and the second client service includes the social network service, the electronic messaging service, or the telecommunications service.

In some implementations, the method includes communicating an instruction to modify the notification data via the second client service. The operation of communicating the instruction to modify the notification data includes sending the instruction to indicate via the second client service that the notification data is read by a user.

In several implementations, the first client service is same as or different from the second client service.

In various implementations, a method for managing notifications is described. The method includes determining whether a first notification is displayed via a first client service, sending notification data associated with the first notification to a server, and receiving an instruction to display a second notification via a second client service, the second notification based on the notification data. The first and second notifications notify a user of receipt of a network message. The network message is contextually originated using the first client service. The method further includes determining whether the first notification is read via the first client service and modifying the first and second notifications in response to determining that the first notification is read. The modification indicates that the first notification is read.

In some implementations, the first and second notifications are displayed within a website account interface that is associated with a website account. The operation of modifying the second notification includes modifying the second notification via the second client service without receiving an input indicating that the second notification is read via the second client service.

In various implementations, the method includes sending the notification data with an identifier of the notification data to the server.

In some implementations, the operation of determining whether the first notification is read includes determining whether a selection of the first notification is received from a user via an input device.

In some implementations, the operation of modifying the second notification is performed in response to receiving an instruction from the server to perform the modification.

In several implementations, the operation of modifying the second notification is performed in response to receiving an answer from the server to a poll. The answer indicates that the server modified a read status that is associated with the second notification and with a client application. The client application is associated with the second client service.

In some implementations, the operation of modifying the second notification includes deleting the second notification.

In several implementations, the first client service is same as or different from the second client service.

In some implementations, a system for managing notifications is described. The system includes a network adapter that is used for sending first notification data to a first client service and second notification data to a second client service. The network adapter is used for receiving an indication that the first notification data has been interacted with using the first client service. Also, the system includes a processor that is used for updating a first read status and a second read status to represent that the first notification data and second notification data have been interacted with based on the indication.

In some implementations, the processor associates the first notification data with a first identifier and the first read status. Moreover, the processor associates the second notification data with a second identifier and the second read status. The first read status indicates whether the first notification data is read via the first client service. The second read status indicates whether the second notification data is read via the second client service. The processor initiates the first read status and the second read status to indicate that the first and second notification data are unread. When the first notification data is read via the first client service, the processor marks the second read status as read without requiring a message that indicates that the second notification data is read via the second client service.

In several implementations, the first client service is same as or different from the second client service.

In some implementations, a method for managing notifications is described. The method includes determining an occurrence on a first service of an online interaction with content associated with the first service and generating first notification data for the first service and second notification data for a second service. The operation of generating the first notification data is performed based on the occurrence of the online interaction. The second service provides content that is different than that associated with the first service. The method further includes receiving an indication of an interaction with the first notification data and updating the second notification data based on the interaction with the first notification data. In various implementations, the content of the first service is particular to the first service.

In several implementations, the first service is different than the second service.

These and other implementations can be embodied in corresponding systems, methods, and apparatus, including computer program products.

These and other implementations may provide one or more of the following advantages. For example, a user does not need to delete notifications received in different client services on one or more client devices. When a user sends a message to another user, multiple notifications are generated on various client services that are accessed by the other user. The client services are accessed by the other user via a website account. The other user views one of the notifications in a client service. When the other user views the notification, the notification is indicated as read by the client service. However, the other client services do not change a status of remaining notifications received within the other services. Various implementations described in the present disclosure modify the status when the other user reads the notification in one of the client services.

Other aspects will become apparent from the following detailed description, taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Various implementations of the present disclosure may best be understood by reference to the following description taken in conjunction with the accompanying drawings.

FIG. 1 is a diagram of an example architecture for illustrating management of notifications, in accordance with several implementations of the present disclosure.

FIG. 2 is a diagram of example notifications that are displayed within different client service representations, in accordance with some implementations of the present disclosure.

FIG. 3A is a flowchart of an example method for updating a read status when a message indicating that a notification is read is received, in accordance with an various implementations of the disclosure.

FIG. 3B is a flowchart of an example method for updating a read status when a message indicating that a notification is read is received, in accordance with an various implementations of the disclosure.

FIG. 4 is a flowchart of an example method for communicating an instruction to modify the remaining of the notifications that are unread by a user, in accordance with some implementations of the disclosure.

FIG. 5 is a flowchart of an example method for modifying one or more of the notifications, in accordance with various implementations of the disclosure.

FIG. 6A is a portion of a detailed block diagram of an example architecture that illustrates management of notifications, in accordance with some implementations of the disclosure.

FIG. 6B is the remaining portion of the detailed block diagram of the architecture of FIG. 6A, in accordance with some implementations of the present disclosure.

DETAILED DESCRIPTION

The following implementations describe systems and methods for managing notifications. It will be apparent, that the present implementations may be practiced without some or all of these specific details.

FIG. 1 is a diagram of some implementations of an architecture 100 for illustrating management of notifications. A client system 102 is used to provide various client services 105, which include a client service 105 ₁, a client service 105 ₂, a client service 105 ₃ and so on until a client service 105 _(P), where P is an integer greater than zero.

The client system 102 includes one or more client devices, e.g., desktop computer, laptop computers, tablets, and cell phones. Client service representations 104 are displayed on a display device of a client device of the client system 102. In some implementations, a client service representation is displayed within a website that includes one or more web pages. A client service is executed by a graphical processing unit (GPU) of the client system 102 to render a corresponding client service representation. For example, the client service 105 _(P) is executed by a GPU of a client device to display the client service representation 104 _(P). Examples of a display device includes a light emitting diode (LED) display device, a liquid crystal display (LCD) device, a cathode ray tube (CRT) display device, and a plasma display device.

Examples of a client service include an application service and an operating system service. Examples of an application service include a mobile application service, a music service, a search service, a social network service, an electronic messaging service, a widget service, a toolbar service, a calendar service, a document storage service, a document creation service, a photo storage service, a news service, a maps service, a translation service, and a telecommunications service. A corresponding client application is executed by one or more servers of a server system 106 to provide a client service. For example, a client application 108 ₁ is executed to provide the client service 105 ₁ and another client application 108 ₂ is executed to provide the client service 105 ₂. As another example, a client application includes instructions that provide functionality and a client service includes instructions that provide representation of the functionality. To further illustrate, a client service includes instructions that command artwork, e.g., look and feel, of a client service representation and a client application includes functionality, e.g., what information to display when a link is selected by a user via an input device. A server, as used herein, includes a physical machine or a virtual machine.

It should be noted that a client application is executed by the processor 254 to generate and send a corresponding client service that is processed by a GPU to provide the corresponding client service representation. For example, the client application 108 _(P) is executed by a processor of the server system 106 to generate and send the client service 105 _(P) that is processed by a GPU of the client system 102 to display the client service representation 104 _(P).

The server system 106 includes one or more servers, each of which includes one or more processors and one or more memory devices. A processor, as used herein, includes an application specific integrated circuit (ASIC), a programmable logic device (PLD), a central processing unit (CPU), or a microprocessor.

As used herein, a memory device includes a read-only memory (ROM), a random access memory (RAM), or a combination thereof. As another example, a memory device includes a hard disk and a flash memory.

In some implementations, one or more of client service representations 104 extends across one or more of the remaining of the client service representations 104. For example, a toolbar, which is a toolbar service representation, extends across an electronic messaging service representation, a social network service representation, a photo storage service representation, a document storage service representation, and a document creation service representation. As another example, a toolbar is displayed on a display screen when an electronic messaging service, a document creation service, a document storage service, and/or a search service are accessed by a user. Examples of a display screen include an LED display screen, an LCD screen, a CRT display screen, and a plasma display screen. A user, as used herein, is an entity or a person.

In various implementations, one or more client services 105 are accessed by a user via an input device. Examples of an input device include a keyboard, a mouse, a stylus, and a touch screen. For example, login information, e.g., a user name and/or a password, is received by a server from a user via an input device. In this example, the server authenticates the login information and upon authentication, provides access to one or more of client services 105.

In some implementations, all client services 105 are accessed by a user when his/her login information is authenticated. In other implementations, one or more but not all of the client services 105 are accessed by a user when his/her login information is authenticated. In yet other implementations, a first set of login information is authenticated to provide access to one or more but not all of the client services 105 and a second set of login information is authenticated to provide access to the remaining of the client services 105. For example, a first user name and a first password of a user are authenticated to provide access to client services 105 ₁ and 105 ₂ and a second user name and a second password of the user are authenticated to provide access to client services 105 ₃ thru 105 _(P).

In some implementations, a mobile application service is provided by a server to perform a variety of tasks on a cell phone. For example, a mobile application service includes a music service, a search service, a social network service, an electronic messaging service, a widget service, a toolbar service, a calendar service, a document storage service, a document creation service, a photo storage service, a news service, a maps service, a translation service, a telecommunications service, or a combination thereof that is provided on a cell phone.

In some implementations, a music service is provided by a server to allow a user to upload music to the server via a website and/or to download music from the server via the website. Moreover, in some implementations, a server that provides a search service receives a search query from a user via a web browser, searches one or more databases, and provides results of the search via the web browser to the user.

Also, in several implementations, a social network service provides social services that allow users to stay in touch with each other. For example a social network service provides a website for a user to post multimedia, e.g., an image, text, video, or audio, receive multimedia from another user, search for other users, chat with users, and/or categorize users. Moreover, in some implementations, an electronic messaging service allows a user to send and/or receive electronic mails from other users via a website. In several implementations, multimedia is embedded within an electronic message.

Furthermore, in several implementations, a widget service allows a user to access information, e.g., a time of day, a calendar, weather, stock quote, etc., from a computer desktop. For example, when a user downloads a widget service via a website, the information that is accessed via the widget service is displayed on a display screen. The information accessed via a widget is accessed from one or more servers via a network. Also, in some implementations, a toolbar service provides a display of input/output (I/O) elements, e.g., buttons, icons, and menus on a display screen.

Additionally, in some implementations, a document creation service allows a user to create via a website a formatted document, e.g., a spreadsheet and a word processing document. Also, in some implementations, a document storage service allows a user to store a document on a server.

Moreover, in several implementations, a photo storage service allows a user to store, access, view and/or share images via a website on a server. An image is shared with other users. For example, when a share icon within a photo storage service is selected by a user via an input device, another user can view on a website one or more photos that are shared. Furthermore, in some implementations, a news service provides access to news, e.g., world news, finance news, entertainment news, weather news, local community news, etc., via a website.

Also, in some implementations, a maps service provides access to a user to directions from a start address to a destination address, a satellite view of a geographical area, and/or to places of interest to a user. Moreover, in some implementations, a translation service provides access to a user to translation of a web page from one language to another language.

It should be noted that the client services 105 are not limited to the ones described herein. For example, various other services 105 include legal search service, a shopping service, and financial services.

Notifications 110 are displayed in client service representations 104. For example, a notification 110 ₁ is displayed in the client service representation 104 ₁, a notification 110 ₂ is displayed in the client service representation 104 ₂, a notification 110 ₃ is displayed in the client service representation 104 ₃, and so on until a notification 110 _(P) is displayed in the client service representation 104 _(P).

A notification is a part of a client service representation. For example, when the client service 105 _(P) is executed by a GPU to render the client service representation 104 _(P), the notification 110 _(P) is also rendered within the client service representation 104 _(P).

It should be noted that the notifications 110 notify a first user that a second user sent from his/her website account interface a network message to the first user's website account. When a network message is sent from one website account interface to another website account interface, the network message is posted on the other website account interface. Examples of each of the notifications 110 include an integer that indicates a number of notifications, a text notice that indicates that a network message is posted in a website account interface, a combination thereof, etc. For example, when a user sends a network message, e.g., “Nice pictures”, “How are you?”, “I went to San Francisco this weekend”, etc., from his/her website account interface to another user's website account interface, a notification is displayed in one of the client service representations 104 that is accessed via the other user's website account interface. In this example, the notification indicates that one network message is received within the other user's website account interface. Examples of a text notice include “You have one message”, “Peter wrote on your wall”, and “You have a message”. In some implementations, the notification 110 ₁ is an integer and the notification 110 ₂ is a text notice.

In several implementations, the notifications 110 are associated with a single network message. For example, when any of the notifications 110 are selected by a user via an input device, the same network message is displayed to the user. As another example, when a network message is sent from one website account interface to another website account interface, the notifications 110 are displayed in the client service representations 104. As yet another example, a first notification, e.g., notification 110 ₁, includes multiple sub-notifications that lead to a network message and a second notification, e.g., notification 110 ₂, also leads to the network message. In this example, the first notification includes a first sub-notification, e.g., an integer, that is displayed on a display screen. In this example, when the first sub-notification is selected by a user via an input device, a second sub-notification, e.g., text notice, is displayed to the user. The second sub-notification is a part of the notification. When the second sub-notification is selected by the user via the input device, the network message is displayed. Moreover, when the second notification is selected by a user via an input device, the network message is displayed.

A website account is associated with one or more of client services 105 via the login information. For example, when a user name and password are authenticated, access to a website account is provided to a user. In the example, one or more of client services 105 are provided to the user via the website account. Also, in this example, a website account interface that includes the client service representations 104 is displayed to the user. Moreover, in this example, the website account interface is an interface common to one or more client services 105 that are accessed when the login information is authenticated. Furthermore, a website account is accessed via a website of a web browser.

Notification data 112 is sent by the server system 106 via a network 230 to the client system 102, which processes the notification data 112 on one or more display screens to display the notifications 110. For example, the notification data 112 ₁ is sent by the server system 106 via the network 230 and is processed by the client system 102 to display the notification 110 ₁ within the client service representation 104 ₁. As another example, the notification data 112 _(P) is sent by the server system 106 via the network 230 and is processed by the client system 102 to display the notification 110 _(P) within the client service representation 104 _(P). In several implementations, notification data is embedded within a notification. For example, when the notification data 112 _(P) is sent by the server system 106 via the network 230 and is processed, e.g., rendered, etc., by the client system 102 to display the notification 110 _(P) within the client service representation 104 _(P), the notification data 112 _(P) becomes a part of the notification 110 _(P). As another example, when a user reads the notification 110 _(P) that may have a format, e.g., italics, bold, colored, grayed, font, letter size, etc., the user reads information, e.g., substance, conveyed message, sequence of symbols, etc., within the notification data 112 _(P).

Examples of the network 230 includes a wired network, a wireless network, or a combination thereof. For example, the network 230 includes a wired local area network (LAN), a wired wide area network (WAN), a wireless LAN, a wireless WAN, or a combination thereof. As another example, the network 230 includes an Intranet, the Internet, or a combination thereof.

The server system 106 creates and maintains a database 116 of identifiers ID₁ thru ID_(P) of notification data 112 and read status 120. Each identifier ID is associated with different notification data 112. For example, the notification data 112 ₁ is identified with the identifier ID₁, the notification data 112 ₂ is identified with the identifier ID₂, and so on until the notification data 112 _(P) is identified with the identifier ID_(P).

Furthermore, each identifier ID₁ thru ID_(P) is associated with an identity Id₁₀₄₁ thru Id_(104P) of a client service. For example, the identifier ID₁ is associated with an identity Id₁₀₄₁ of the client service 105 ₁ and the identifier ID_(P) is associated with an identity Id_(104P) of the client service 105 _(P).

Moreover, each read status is associated with an identifier of notification data. For example, a value A₁/B₁ is a value of the read status 120 of the notification data 112 ₁ that is processed to display notification 110 ₁ within the client service representation 104 ₁. As another example, a value A_(P)/B_(P) is a value of the read status 120 of the notification data 112 _(P) that is processed to display notification 110 _(P) within the client service representation 104 _(P).

An example of the value A, e.g., one or more of the values A₁ thru A_(P), includes a zero or a one. A is set to indicate a value X and B e.g., one or more of the values B₁ thru B_(P), is set to indicate a value Y, where X and Y describe status of whether a message is read or unread, and where X has a different value than Y. For example, if A is zero, B is one and if A is one, B is zero. When a value of A is assigned to a read status of a notification that is displayed within a client service representation, the notification is unread by a user via a client service that is executed to render the client service representation. For example, when the notification 110 ₂ that is displayed within the client service representation 104 ₂ has a read status of A₂, a user has not selected the notification 110 ₂ to read the notification 110 ₂. Moreover, when a value of B is assigned to a read status of a notification that is displayed within a client service representation, the notification is read by a user via a client service that is processed to render the client service representation. For example, when the notification 110 ₁ that is displayed within the client service representation 104 ₁ has a read status of B₁, a user has selected the notification 110 ₁ to read the notification 110 ₁.

The value A₁ changes to B₁ within the database 116 when a processor of the server system 106 determines that the notification 110 ₁ is read via the client service 105 ₁. The notification 110 ₁ is read via the client service 105 ₁ when a user selects the notification 110 ₁ displayed within the client service representation 104 ₁. Moreover, the value A_(P) changes to B_(P) when a processor of the server system 106 determines that the notification 110 _(P) is read via the client service 105 _(P). The notification 110 _(P) is read via the client service 105 _(P) when a user selects the notification 110 _(P) displayed within the client service representation 104 _(P).

In some implementations, the server system 106 initiates the read status 120 to indicate that all notifications are unread. For example, the server system 106 initiates the read status 120 to values A₁ thru A_(P).

When a user reads one of the notifications 104 via a corresponding one of client service representations 104 in which the notification is displayed, a “read notification” (RN) message 218 is sent from the client system 102 via the network 230 to the server system 106. For example, a user selects via an input device the notification 110 ₁ within the client service representation 104 ₁ to read the notification via the client service 105 ₁ that is processed to render the representation 104 ₁. In some implementations, the RN message 218 includes an identifier of one of client services 105 via which one of notifications 110 is read and an identifier of the notification. For example, the RN message 218 indicates that the notification 110 ₁ is read by a user via the client service 105 ₁.

Upon determining that the selection is made, the client system 102 sends the RN message 218 to an RN handler 114 via the network 230. When the RN handler 114 receives the RN message 218, the RN handler 114 updates a value, of read status 120, that is identified by the identifier ID₁. For example, in response to receiving the RN message 218, the RN handler 114 determines that the identifier ID₁ within the RN message 218 identifies the notification data 112 ₁. Upon determining so, the RN handler 114 determines that the read status A₁ within the database 116 corresponds to the identifier ID₁. The RN handler 114 updates the value from A₁ to B₁.

Moreover, upon updating the value from Alto B₁, the RN handler 114 also updates values of read status 120 of the remaining notification data 112 ₂ thru 112 _(P) that are associated with the notification data 112 ₁ that is identified in the RN message 218. For example, in response to updating the value from A₁ to B₁, the RN handler 114 updates the values A₂ thru A_(P) to B₂ thru B_(P) in the database 116. In some implementations, the RN handler 114 updates the values A₂ thru A_(P) to B₂ thru B_(P) simultaneous with an update of the value A₁ to B₁. Moreover, in other implementations, the RN handler 114 updates the values A₂ thru A_(P) to B₂ thru B_(P) after an update of the value A₁ to B₁.

A notification removal handler 126 determines whether one or more of the values A of read status 120, that correspond to the identifiers ID₁ thru ID_(P) of the notification data 112 are updated. For example, the notification removal handler 126 determines whether A₁ changed to B₁ and A₂ changed to B₂, and so on until A_(P) changed to B_(P). As another example, the notification removal handler 126 determines whether A₁ changed to B₁ or A₂ changed to B₂ and so on until A_(P) changed to B_(P).

In response to determining that the one or more values, of the read status 120, that correspond to the identifiers ID₁ thru ID_(P) of the notification data 104 are updated, the notification removal handler 126 generates a modify instruction message 232 that is sent via the network 230 to the client system 102. In some implementations, the modify instruction message 232 includes the values B₂ thru B_(P) and the identities Id₂ thru Id_(P) of client services 105 ₂ thru 105 _(P), which are unused for reading the notifications 110 ₂ thru 110 _(P). The identities Id₂ thru Id_(P) within the modify instruction message 232 identify the corresponding client services 105 ₂ thru 105 _(P) for which the values A₂ thru A_(P) changed to corresponding values B₂ thru B_(P).

In other implementations, the modify instruction message 232 includes one or more of the values B₂ thru B_(P) that corresponds to one of the client services 105 ₂ thru 105 _(P) that requested the read status 120. For example, when the client service 105 ₂ generates a poll requesting the read status 120, the modify instruction message 232 includes the value B₂.

Upon receiving the modify instruction message 232, the client system 102 modifies the remaining notifications 110 ₂ thru 110 _(P) that are unread by a user. For example, the client system 102 unbolds, shades, or deletes the notifications 110 ₂ thru 110 _(P). To further illustrate, the client system 102 changes an integer ‘1’ that indicates that the notification 110 ₂ is received within the client service 105 ₂ to ‘0’. As another example, the client system 102 deletes a text notice that indicates within the client service representation 104 ₂ that “You have a message”. As another example, the client system 102 changes a display of the notifications 110 ₂ thru 110 _(P) to indicate that the notifications are read even though the notifications 110 ₂ thru 110 _(P) are unread by a user. To further illustrate, the client system 102 unbolds a text notice that indicates within the client service representation 104 ₂ that “You have a message”.

It should be noted that the RN handler 114 and notification removal handler 126 are modules, which are computer programs that are executed by one or more servers of the server system 104.

It should also be noted that in some implementations, functions described herein as performed by the server system 106 are performed by one or more processors of one or more servers of the server system 106. Similarly, in some implementations, functions described herein as performed by the client system 102 are performed by one or more processors of one or more client devices of the client system 102.

FIG. 2 is a diagram of various implementations of notifications that are displayed within different client service representations. A notification 142 ₁ is displayed within a social network service representation 140 ₁, which is displayed on a display screen. The social network service representation 140 ₁ is accessed via an operating system service and provides access to various client services, e.g., a photo storage service, a streaming service, a messenger service, and a profile service. The streaming service allows a website account interface of a user 144 ₂ to receive network messages from other website account interfaces of other users and allows the website account interface to send network messages to the other website account interfaces. Moreover, the messenger service allows the user 144 ₂ to chat via a website account interface of the user 144 ₂ and via a website account interface of another user to chat with the other user. The profile service allows the user 144 ₂ to post information regarding the user 144 ₂, e.g., for example, a name of the user 144 ₂, a marital status of the user 144 ₂, an entity where the user 144 ₂ is employed, a university or school that the user 144 ₂ is attending, a gender of the user 144 ₂, an electronic message address of the user 144 ₂, and a photo of the user 144 ₂. The notification 142 ₁ indicates that the user 144 ₂ having a website account for receiving a social network service has received one network message from another website account of another user. In some implementations, the social network service representation 140 ₁ is displayed on a display screen when the user 144 ₂ selects, via an input device, a social network service icon on the display screen.

In various implementations, the notification 142 ₁ is a sub-notification that when selected by a user via an input device leads to a display of another sub-notification, e.g., “User has commented on your photo.” Upon receiving a selection of the other sub-notification from a user, a network message, e.g., “Nice photo”, is displayed.

A notification 142 ₂ is displayed within a web browser service representation 140 ₂ that is displayed on a display screen of a client device. The notification 142 ₂ indicates that a network message is received by a user in a website account interface that is associated with a website account that is further associated with a social network service. When a selection of the notification 142 ₂ is received, a network message is displayed on a display screen of a client device.

A notification 142 ₃ is displayed within an electronic message inbox of an electronic message service representation 140 ₃ when the user 144 ₂ receives a network message from another user. For example, the notification 142 ₃ includes a text notice that indicates that “User 144 ₁ commented on your post”. In some implementations, when the notification 142 ₃ is selected by the user 144 ₂ via an input device of a client device, a network message to the user 144 ₂ is displayed within an electronic message on a display screen of the client device.

Moreover, another notification 142 ₄ is displayed within a toolbar service representation 140 ₄. The notification 142 ₄ indicates that the user 144 ₂ has received a network message in his/her website account interface that is associated with a social network service. The toolbar service representation 140 ₄ includes a picture of the user 144 ₂ and an electronic message address of the user 144 ₂. In some implementations, when the notification 142 ₄ is selected by the user 144 ₂ via an input device of a client device, a network message is displayed to the user 144 ₂ on a display screen of the client device.

It should be noted that a display screen, as used herein, is a display screen of a client device. Moreover, it should be noted that all the notifications 142 when selected by a user lead to the same network message. Accordingly, it is redundant for the user 144 ₂ to select the notifications 142 ₂, 142 ₃, and 142 ₄ after selecting the notification 142 ₁.

FIG. 3A is a flowchart of various implementations of a method 205 for updating the notifications 110 (FIG. 1). The method 205 is executed by one or more processors of one or more servers of the server system 106 (FIG. 1).

In operation 203, it is determined whether an online interaction has occurred with content of one of the client services 105 (FIG. 1). For example, it is determined whether a signal indicating that a user has sent a message to another user via the network 230 is received via the network 230 from the client system 102 (FIG. 1). To illustrate, a user sends a message to another user by sending a post that is created within a social network service. As another example, a user sends an electronic message to another user. As yet another example, a user selects a send button within a social network service or an electronic message service to send a message to another user. The user selects the send button via an input device of a client device to generate the signal that indicates that the user has sent the message. Upon determining that there is a lack of occurrence of the online interaction, the method 205 ends.

On the other hand, upon determining that the online interaction has occurred, in operation, in operation 207, the notification data 112 is generated and sent via the network 230 to the client system 102 (FIG. 1). For example, the notification data 112 ₁ is sent via the network 230 to the client service 105 ₁ and notification data 112 ₂ is sent via the network 230 to the client service 105 ₂. The client system 102 renders the notification data 112 to display the notifications 110 within corresponding client service representations 104 (FIG. 1). For example, the notification data 112 ₁ is rendered to display the notification 110 ₁ within the client service representation 104 ₁ and the notification data 112 ₂ is rendered to display the notification 110 ₂ within the client service representation 104 ₂.

It should be noted that in some implementations, the notification data 110 ₁ has a different format than that of the notification 110 ₂. For example, the notification 110 ₁ includes more alphanumeric characters than the notification data 110 ₂. As another example, the notification 110 ₁ includes an image and the notification 110 ₂ includes a video. As another example, the notification 110 ₁ includes one type of multimedia and the notification 110 ₂ includes another type of multimedia. Types of multimedia include an image, a video, text, and an audio.

Moreover, it should be noted, that in various implementations, content, e.g., features, of the service 105 ₁, is different than content of the service 105 ₂. For example, some features of the service 105 ₁ facilitate chat with social network friends, allow posting of multimedia, and allow keeping touch with social network friends. Moreover, in this example, some features of the service 105 ₂ allow sending electronic messages to other users, receiving electronic messages from the other users, and accessing messages with the service 105 ₂ for a longer time period than with the service 105 ₁. As another example, some features of the service 105 ₁ allow a user to upload music to a server, to download music from the server, and to listen to music and some features of the service 105 ₂ allow a user to upload videos to a server and to watch the videos. As yet another example, the content of the service 105 ₁ is particular to the service 105 ₁. To illustrate, at least one feature of the service 105 ₁ is not offered by the service 105 ₂. As another example, the content of the service 105 ₁ is particular to the service 105 ₁ and the content of the service 105 ₂ is particular to the service 105 ₂. To illustrate, at least one feature of the service 105 ₁ is not offered by the service 105 ₂ and at least one feature of the service 105 ₂ is not offered by the service 105 ₁.

In a variety of implementations, the service 105 ₂ is different from the service 105 ₂. For example, the service 105 ₁ is a telecommunications service and the service 105 ₂ is a social network service. As another example, the service 105 ₁ is a social network service and the service 105 ₂ is an electronic messaging service or a telecommunications service. In some implementations, the service 105 ₁ is the same as the service 105 ₂. For example, both services 105 ₁ and 105 ₂ are a social network service. As another example, both services are an electronic messaging service.

Moreover, in operation 217, it is determined whether an indication of an interaction with the notification 110 ₁ is received via the network 230 from the client system 102. For example, it is determined whether an indication that a user has selected the notification 110 ₁ is received via the network 230.

Upon determining that the indication of the interaction with the notification 110 ₁ is not received, the method 205 ends. On the other hand, upon determining that the indication of the interaction with the notification 110 ₁ is received, in operation 223, the notification data 112 ₂ thru 112 _(P) is updated to indicate the interaction with the notification 110 ₁. For example, the notification data 112 ₂ thru 112 _(P) is updated to decrement values indicated within notifications 110 ₂ thru 110 _(P). As another example, the notification data 112 ₂ thru 112 _(P) is updated to delete or change a shade of the notifications 110 ₂ thru 110 _(P).

FIG. 3B is a flowchart of some implementations of a method 200 for updating a read status when a message indicating that a notification is read is received. The method 200 is performed by one or more processors of one or more servers of the server system 106 (FIG. 1).

In operation 201, a determination is made whether a network message is received from a client device of the client system 102 (FIG. 1). The network message is contextually originated using one of client services 105 that is used to generate the network message. For example, if the client service 105 ₁ is used to generate the network message, the network message has a different lifespan during which the message can be accessed by a user at a client device. The lifespan is different than that when the client service 105 ₂ is used to generate the network message. As another example, if the client service 105 ₁ is used to generate the network message, the network message has a different format. The format is different than that when the client service 105 ₂ is used to generate the network message. As yet another example, the network message is generated using features of one of the client services 105 and in various implementations, the features are different than features of the remaining of the client services 105. In some implementations, a lifespan of the network message and a format of the network message are examples of features of one of client services 105. Examples of a network message include a post created within a social network service, a comment to the post also made within the social network service, an electronic message created using an electronic messaging service, etc.

The network message received from the client device is a network message to be sent from one website account to another website account. For example, the network message is received via the network 230 (FIG. 1) and is to be sent from a website account of a social network service to another website account of the social network service. In response to determining that the network message is not received, the method 200 ends. On the other hand, upon determining that the network message is received, in operation 208, notification data 112 (FIG. 1) is generated.

Moreover, in operation 210, the notification data 112 is associated with the identifiers ID₁ thru ID_(P) of the notification data 112 and with the read status 120 (FIG. 1). For example, the identifier ID₁ (FIG. 1) is assigned to the notification data 112 ₁ and a position of the value A₁/B₁ of the read status 120 in the database 116 (FIG. 1) is assigned to the identifier ID₁. As another example, identifier ID_(P) is assigned to the notification data 112 _(P) and a position of the value A_(P)/B_(P) of the read status 120 in the database 116 is assigned to the identifier ID_(P).

Furthermore, in operation 212, positions of the values of the read status 112 that are assigned to the identifiers ID are initiated to the values A₁ thru A_(P) indicate that the notification 112 is unread by the user 144 ₂ (FIG. 2). The value A₁ indicates that the notification 110 ₁ is unread by the user 144 ₂ via the client service 105 ₁ and the value A_(P) indicates that the notification 110 _(P) is unread by the user 144 ₂ via the client service 105 _(P).

In operation 214, the notification data 112 is sent to the client services 105 (FIG. 1). For example, the notification data 112 ₁ is sent via the network 230 to the client service 105 ₁ and the notification data 112 _(P) is sent via the network 230 to the client service 105P.

In operation 215, it is determined whether an indication that one of the notifications 110, e.g., the notification 110 ₁, 110 ₂, 110 ₃, and so on until 110 _(P-1), or 110 _(P), has been interacted with using one of the client service representations 104. For example, it is determined whether a message indicating that one of the notifications 110, e.g., the notification 110 ₁, 110 ₂, 110 ₃, and so on until 110 _(P-1), or 110 _(P), is read by the user 144 ₂. As another example, the user 144 ₂ reads the notification 110 ₁ by selecting via an input device of a client device the notification 110 ₁ displayed within the client service representation 104 ₁ that is displayed on a display screen of the client device. When one of the notifications 110 is read, the RN message 218, which is an example of the indication, is received via the network 230 (FIG. 1). For example, when the notification 110 ₁ is read via the client service 105 ₁, the RN message 218 includes an identifier of the client service 105 ₁ and an identifier of the notification 110. The identifier of the client service 105 ₁ indicates to one or more servers of the server system 106 that the notification is read via the client service 105 ₁. In response to determining that the indication that one of the notifications 110 has not been interacted with, the method 200 ends.

On the other hand, upon determining that the indication that one of the notifications 110 has not been interacted with is received, in operation 220, the read status 120 of the notification data 112 is updated to represent that the notifications 110 have been interacted with based on the indication. For example, when the read notification handler 114 determines that the RN message 218 is received, the read notification handler 114 changes the value A₁ to B₁, A₂ to B₂, and so on until the value A_(P) is changed to B_(P). The values B₁ thru B_(P) indicate that the notifications 110 are read. In some implementations, each value A₁, A₂, and so on until A_(P) and the values B₁, B₂ and so on until B_(P) is an example of a read status indicator.

It should be noted that the value A₁ is changed to the value B₁, the value A₂ is changed to the value B₂ and so on until the value A_(P) is changed to the value B_(P) when the notifications 110 ₂ thru 110 _(P) are unread by the user 144 ₂ and the notification 110 ₁ is read by the user 144 ₂. For example, when the notification 110 ₂ is not read by the user 144 ₂ and the notification 110 ₁ is read by the user 144 ₂, the value A₂ is changed to B₂ without issuance of an RN message that indicates to the server system 105 that the notification 110 ₂ is read via the client service 105 ₂. In this example, the RN message is not issued by a client device of the client system 102. Moreover, in this example, when the notification 110 ₁ is read via the client service 105 ₁, the value A₂ is changed to B₂ regardless of whether the notification 110 ₂ is read by the user 144 ₂. The method 200 ends after operation 220.

In several implementations, instead of determining whether one of the notifications 110 is read by the user 144 ₂, it is determined whether a number, e.g., two or three, of the notifications are read by the user 144 ₂. In these implementations, the remaining of read status 120 corresponding to the remaining of notification data 112 of the remaining of notifications 110 that are unread by the user 144 ₂ are updated by the read notification handler 114 (FIG. 1) to the values of B from A. Moreover in these implementations, the notification removal handler 126 (FIG. 1) send a message to remove the remaining of the notifications 110 that are unread. In other implementations, instead of sending a message to remove the remaining of the notifications 110 that are unread, the notification removal handler 126 sends a message to remove all but one of the notifications 110 that is read by the user 144 ₂. In some implementations, instead of sending a message to remove the remaining of the notifications 110 that are unread, the notification removal handler 126 sends a message to remove notifications 110 except for the one that is read first by the user 144 ₂. For example, if the notifications 110 ₁ and 110 ₂ are read by the user 144 ₂, the remaining notifications 110 ₃ thru 110 _(P) are unread, and the notification 110 ₁ is read first between the notifications 110 ₁ and 110 ₂, a message to remove the notifications 110 ₂ thru 110 _(P) is sent.

FIG. 4 is a flowchart of several implementation of a method 234 for communicating an instruction to modify the remaining of the notifications 110 that are unread by the user 144 ₂. The method 234 is executed by one or more processors of one or more servers of the server system 116 (FIG. 1). In operation 236, the notification removal handler 126 (FIG. 1) determines whether an update to the read status 120 is made within the database 116 (FIG. 1). For example, it is determined whether the value A₁ is updated to 131 and so on until the read status A_(P) is updated to B_(P). Upon determining that the update to the read status 120 is not made, the notification removal handler 126 keeps checking whether the update is made.

Upon determining that the update to the read status 120 is made, in operation 240, the modify instruction message 232 is sent via the network 230 to the client services 105 ₂ thru 105 _(P). The modify instruction message 232 includes information to modify the notifications 110 ₂ thru 110 _(P). As an example, the modify instruction message 232 includes the identifiers ID₂ thru ID_(P), the identities Id₂ thru Id_(P), and the values B₂ thru B_(P). As another example, the modify instruction message 232 includes the identifiers ID₂ thru ID_(P) and the value B₂ thru B_(P). As yet another example, the modify instruction message 232 indicates to the client services 105 ₂ thru 105 _(P) that the value A₁ is changed to the value B₁ and so on until the value A_(P) is changed to the value B_(P). The method 234 ends after operation 240.

In various implementations, the method 234 follows the method 200 (FIG. 2). For example, instead of ending the method 200 after operation 220 (FIG. 2), the operation 236 is performed after the operation 220.

FIG. 5 is a flowchart of some implementations of a method 250 for modifying the notifications 110 ₂ thru 110 _(P). The method 250 is executed by one or more processors of one or more client devices of the client system 102.

In operation 252, it is determined whether the notification 110 ₁ is displayed within the client service representation 104 ₁ (FIG. 1) that is displayed within a website account interface of the user 144 ₂. The notification 110 ₁ is displayed when a network message is sent from one website account interface of the user 144 ₁ to another website account interface of the user 144 ₂. Upon determining that the notification 110 ₁ is not displayed, the method 250 ends.

On the other hand, upon determining that the notification 110 ₁ is displayed, in operation 256, notification data 112 is sent from the client system 102 to the server system 106 via the network 230 (FIG. 1). The notification data 112 is associated with the notification 110 ₁. For example, the notification data 112 is processed by a client device of the client system 102 to display the notification 110 ₁ on a display screen of the client device.

In operation 260, an instruction to display the notification 110 ₂ within the client service representation 104 ₂ of the website account interface of the user 144 ₂ is received. Upon receiving the instruction, the notification 110 ₂ is displayed within the client service representation 104 ₂.

In operation 262, it is determined whether the notification 110 ₁ that is displayed within the client service representation 104 ₁ is read by a user via an input device. For example, it is determined whether the notification 110 ₁ is selected by a user via an input device. The notifications 110 notify the user 144 ₂ that the network message 204 is received by a client device that the user operates.

Upon determining that the notification 110 ₁ is unread, the method 250 ends. On the other hand, upon determining that the notification 110 ₁ is read, the notifications 110 ₁ and 110 ₂ are modified. For example, the notification 110 ₁ is unbolded or shaded but still displayed within the client service representation 104 ₁ that is displayed on a display screen of a client device and the notification 110 ₂ is deleted from the display screen. As another example, the notifications 110 ₁ and 110 ₂ are unbolded or shaded but both the notifications 110 ₁ and 110 ₂ are displayed on a display screen of a client device. The method 250 ends after the operation 264.

FIG. 6, which includes FIGS. 6A and 6B, is a block diagram of various implementations of an architecture 150 that illustrates management of notifications 110. The user 144 ₁ operates a client device 152 ₁ to generate a network message 204. For example, the user 144 ₁ provides his/her login information to log into a website account (WSA) 226 ₁ that is assigned by a server 254 to the user 144 ₁. The website account 226 ₁ is accessed via a web browser. When the login information of the user 144 ₁ is authenticated by a server 254, a GPU 166 ₁ processes data of the client services 105 and data of a website account interface 221 ₁ to render the client service representations 104 within the website account interface 221 ₁. In some implementations, the website account interface 221 ₁ includes login information regarding the user 144 ₁. In some implementations, the website account interface 221 ₁ includes an image of the user 144 ₁.

Moreover, after the authentication, the user 144 ₁ accesses the client service 105 ₁ via the client service representation 104 ₁ that is displayed on a display screen 162 ₁ and enters the network message 204 via an input device 266 ₁. The input device 266 ₁ is coupled with a bus 154 ₁ via an I/O interface 156 ₁. It should be noted that the network message 204 is displayed by the GPU 166 ₁ on the display screen 162 ₁ when a processor 164 ₁ receives the network message 204 from the user 144 ₂. The display screen 162 ₁ is coupled with an I/O interface 174 ₁. The GPU 166 ₁, the processor 164 ₁, the I/O 156 ₁, the network adapter 272 ₁, a memory device 279 ₁, and the I/O 174 ₁ are coupled with each other via the bus 154 ₁.

The user 144 ₁ addresses the network message 204 to the user 144 ₂. For example, the user 144 ₁ selects an icon that represents the user 144 ₂ within the client service representation 104 ₁. When the icon is selected, the client service 105 ₁ is executed by the server 254 to display a comment field within the client service representation 104 ₁. The user 144 ₁ enters a comment in the comment field. When the user 144 ₁ enters the comment, the comment is an example of the network message 204 that is directed to the user 144 ₂.

When the network message 204 is addressed to the user 144 ₂, a network adapter 272 ₁ sends the network message 204 via the network 230 to the server 254. Examples of a network adapter include a network interface card (NIC) and a modem. A network adapter 274 of the server 254 receives the network message 204. A processor 276 of the server 254 processes the network message 204 to determine that the network message 204 is generated from the website account 226 ₁ and is addressed to a website account 226 ₂ of the user 144 ₂.

Moreover, upon receiving the network message 204, notification data 112 is generated for the client services 105 by the processor 276. Furthermore, upon receiving the network message 204, the database 116 is created by the processor 276 within a memory device 278. For example, the processor 276 assigns the identifiers ID₁ thru ID_(P) to the notification data 112 and assigns positions of the values A/B of the read status 120 in the database 116 (FIG. 1) to the identifiers ID₁ thru ID_(P). As another example, the identifier ID₁ is assigned to the notification data 112 ₁ and so on until the identifier ID_(P) is assigned to the notification data 112 _(P). Moreover, a position of the value A₁/B₁ is assigned to the identifier ID₁ and so on until a position of the value A_(P)/B_(P) is assigned to the identifier ID_(P).

The network adapter 274 sends the network message 204, the notification data 112, the identities id of client service 105 that are processed to render the client service representations 104 in which the notification data 110 is displayed, and the identifiers ID of the notification data 110 to the client device 152 ₂ that is operated by the user 144 ₂ to access his/her website account 226 ₂. For example, the notification data 112 ₁ is sent to the client service 105 ₁ via the network 230, the notification data 112 ₂ is sent to the client service 105 ₂ via the network 230, and so on until the notification data 112 _(P) is sent to the client service 105 _(P) via the network 230.

In some implementations, the user 144 ₂ enters his/her login information that is authenticated by the server 254 to allow the user 144 ₂ to access the website account 226 ₂. When the login information of the user 144 ₂ is authenticated, the user 144 ₂ is allowed access by the server 254 to the client services 105. Moreover, when the login information of the user 144 ₂ is authenticated, a GPU 166 ₂ processes data of the client services 105 and data of a website account interface 221 ₂ to render the client service representations 105 within the website account interface 221 ₂. In various implementations, the website account interface 221 ₂ includes login information regarding the user 144 ₂. In some implementations, the website account interface 221 ₂ includes an image of the user 144 ₂.

Furthermore, when the network message 204, the notification data 112, the identities Id, and the identifiers ID are received by a network adapter 277 ₂ of the client device 152 ₂, the GPU 166 ₂ processes the notification data 112 to display the notifications 110 on a display screen 162 ₂ of a display device 170 of the client device 152 ₂. For example, the notification 110 ₁ is displayed within the client service representation 104 ₁ and so on until the notification 110 _(P) is displayed within the client service representation 104 _(P).

Moreover, read bits 107 within a memory device 279 ₂ of the client device 152 ₂ are generated by a processor 164 ₂. Each of the read bits 107 identifies a read status of a corresponding notification. For example, the read bit 107 ₁ identifies whether the notification 110 ₁ is read by the user 144 ₂. As another example, the read bit 107 _(P) identifies whether the notification 110 _(P) is read by the user 144 _(P). If a value of the read bit 107 _(P) is A_(P), the processor 164 ₂ determines that the notification 110 _(P) is unread by the user 144 ₂. On the other hand, if a value of the read bit 107 _(P) is B_(P), the processor 164 ₂ determines that the notification 110 _(P) is read by the user 144 ₂. When the read bits 107 are generated, all the read bits 107 are initiated by the processor 164 ₂ to the values A.

The display device 170 is coupled with an I/O interface 174 ₂. The GPU 166 ₂, the processor 164 ₂, an I/O 156 ₂, the memory device 279 ₂, the network adapter 272 ₂, and the I/O 174 ₂ are coupled with each other via a bus 154 ₂.

The user 144 ₂ views the notification 110 ₁ and selects the notification 110 ₁ via the input device 266 ₂. When the notification 110 ₁ is selected, processor 164 ₂ determines that the notification 110 ₁ is read by the user 144 ₂. Upon determining that the notification 110 ₁ is read, the network adapter 272 ₂ generates the read notification message 218 that includes the identifier ID₁ that identifies the notification 110 ₁ that is read.

The read notification message 218 is sent via the network 230 to the server 254. The network adapter 274 receives the read notification message 218 and disintegrates the read notification message 218 to provide the identifier ID₁ to the processor 276. Upon receiving the identifier ID₁, the processor 276 determines that the notification 110 ₁ that corresponds to the notification data 112 ₁ was read.

Upon determining that the notification 110 ₁ was read, the processor 276 changes the value A₁ to B₁ and changes the remaining values A₂ to A_(P) to B₂ thru B_(P). For example, the processor 276 changes the value A₂ to B₂ and so on until the value A_(P) is changed to the value B_(P). Upon determining that the values A₁ thru A_(P) are changed to B₁ thru B_(P), the network adapter 274 generates the modify instruction message 232 that includes the identifiers ID, the identities Id, and the values B₁ thru B_(P). As described above, the modify instruction message 232 includes commands to modify the notifications 110.

Upon receiving the modify instruction message 232, the network adapter 272 ₂ disintegrates the modify instruction message 232 to provide the identifiers ID, the identities Id, and the values B₁ thru B_(P) to the processor 164 ₂. Upon receiving the identifiers ID, the identities Id, and the values B₁ thru B_(P), the processor 164 modifies read bits 107 to the values B₂ thru B_(P) for the client services 105 ₂ thru 105 _(P) that are identified by the identities Id₂ thru Id_(P). For example, the processor 164 ₂ modifies the read bits 107 ₂ thru 107 _(P) from the value A to the value B. The GPU 166 ₂ modifies one or more of the notifications 110 that are displayed within one or more of the client service representations 104 based on the read bits 107. For example, when the GPU 166 ₂ determines that the read bits 107 ₂ thru 107 _(P) have the values B₂ thru B_(P), the GPU 166 ₂ deletes the notifications 110 ₂ thru 110 _(P). As another example, when the GPU 166 ₂ determines that the read bits 107 ₂ thru 107 _(P) have the values B₂ thru B_(P), the GPU 166 ₂ unbolds or shades the notifications 110 ₂ thru 110 _(P).

In other implementations, the database 116 is generated to include the identifier ID and the read status 120 and exclude the identities Id. In these implementations, instead of receiving the modify instruction message 232 that includes the identifiers ID, the identities Id, and the notification data 112, any of the client services 105 ₂ thru 105 _(P) sends a poll via the network adapter 272 ₂ and the network 230 to the server 254 to determine whether a corresponding one of the values A₂ thru A_(P) has changed to a corresponding value B₂ thru B_(P) within the database 116. For example, the client service 105 ₂ sends a poll to the server 254 to determine whether the value A₂ has changed to B₂ within the database 116.

In these implementations, upon receiving the poll, the network adapter 274 determines whether a corresponding one of the values A₂ thru A_(P) have changed to a corresponding value B₂ thru B_(P). For example, the network adapter 274 determines whether the value A₂ has changed to B₂. Upon determining that the corresponding one of the values A₂ thru A_(P) has changed to a corresponding value B₂ thru B_(P), the network adapter 274 sends an answer to the poll and the answer includes the one of the values B₂ thru B_(P). For example, the network adapter sends the answer with the value B₂.

Further, in these implementations, the network adapter 272 ₂ disintegrates the answer and provides one of the values B₂ thru B_(P) within the answer to the one of the client services 105 ₂ thru 105 _(P) that sent the poll. For example, the network adapter 272 ₂ disintegrates the answer and provides the value B₂ within the answer to the client service 105 ₂. It should be noted that the client services 105 ₂ thru 105 _(P) are executed by the processor 266 ₂.

Moreover, in these implementations, upon receiving one of the values B₂ thru B_(P) from the network adapter 272 ₂, the one the client services 105 ₂ thru 105 _(P) that sent the poll is executed by the processor 266 ₂ to send commands to the GPU 166 ₂ to modify one of the notifications 110 ₂ thru 110 _(P) that is displayed within a corresponding one of the client service representations 104 ₂ thru 104 _(P). For example, upon receiving the value B₂ from the network adapter 272 ₂, the client service 105 ₂ that sent the poll is executed by the processor 266 ₂ to send a command to the GPU 166 ₂ to delete, unbold, or shade the notification 110 ₂ that is displayed within the client service representation 104 ₂.

In some implementations, the read notification handler 114 and the notification removal handler 126 of FIG. 1 are executed by the processor 276. In other implementations, the read notification handler 114 is executed by the processor 276 and the notification removal handler 126 is executed by the network adapter 274.

It should be noted that in some implementations, the functions described herein as performed by a processor, a network adapter, and a GPU that include separate processors within a client device are performed by one or more processors within the client device.

It should further be noted that in some implementations, the functions described herein as performed by the server 254 are performed by multiple servers. For example, authentication is performed by another server instead of the server 254.

Implementations of the present disclosure can be fabricated as computer-readable code on a non-transitory computer-readable storage medium, which is a memory device. The non-transitory computer-readable storage medium holds data which can be read by a computer system. Examples of the non-transitory computer-readable storage medium include network attached storage (NAS), ROM, RAM, a combination of RAM and ROM, compact discs (CD)s, Blu-Ray™ discs, flash memory, hard disks, magnetic tapes, and other data storage devices. The non-transitory computer-readable storage medium may be distributed over a network-coupled computer system so that the computer-readable code is executed in a distributed fashion.

Although the method operations were described in a specific order, it should be understood that some operations may be performed in a different order, when the order of the operations do not affect the expected results. In addition, other operations may be included in the methods presented, and the operations may be performed by different entities in a distributed fashion, as long as the processing of the operations is performed in a desired way.

In addition, at least one operation of some methods performs physical manipulation of physical quantities, and some of the operations described herein are useful machine operations. Implementations presented herein recite a device or apparatus. The apparatus is specially constructed for a specific purpose. The apparatus includes a processor capable of executing the program instructions of the computer programs presented herein.

Although the foregoing implementations have been described with a certain level of detail for purposes of clarity, it is noted that certain changes and modifications can be practiced within the scope of the appended claims. Accordingly, the provided implementations are to be considered illustrative and not restrictive, not limited by the details presented herein, and may be modified within the scope and equivalents of the appended claims. 

What is claimed is:
 1. A method comprising: sending first notification data to a first client service and second notification data to a second client service, wherein the first notification data and the second notification data notify a user of a message about an activity that is of interest to the user, wherein the first client service is hosted by a first client device of the user and the second client service is hosted by a second client device of the user; receiving a read notification indicating that the first notification data sent to the first client service has been interacted with by the user; determining, by a processing device, that the second notification data sent to the second client service has not been interacted with by the user; and responsive to determining that the second notification data sent to the second client service has not been interacted with by the user, sending a modify instruction to the second client device that hosts the second client service, wherein the modify instruction to cause a modification of the second notification data that has not been interacted with to reflect that the first notification data has been interacted with by the user.
 2. The method of claim 1, wherein determining that the second notification data sent to the second client service has not been interacted with by the user comprises: updating a first read status associated with the first notification data and a second read status associated with the second notification data in response to receiving the read notification, such that the first read status and the second read status have a read status indicator reflecting that the first notification data has been interacted with by the user.
 3. The method of claim 2, wherein updating the first read status and the second read status comprises marking the first read status and the second read status as read without receiving an indication that the second notification data is read via the second client service.
 4. The method of claim 2, further comprising: associating the first notification data with a first identifier and the first read status, the first read status indicating whether the first notification data sent to the first client service is read via the first client service; and associating the second notification data with a second identifier and the second read status, the second read status indicating whether the second notification data is read via the second client service.
 5. The method of claim 2, further comprising: initiating the first read status to indicate that the first notification data is unread via the first client service, wherein initiating the first read status to indicate that the first notification data is unread via the first client service comprises assigning a value to the first read status to indicate that the first notification data is unread via the first client service; and initiating the second read status to indicate that the second notification data is unread via the second client service, wherein initiating the second read status to indicate that the second notification data is unread via the second client service comprises assigning a value to the second read status to indicate that the second notification data is unread via the second client service.
 6. The method of claim 1, wherein the read notification comprises a first identifier to identify that the first notification data has been interacted by the user.
 7. The method of claim 1, wherein the first client service is different from the second client service.
 8. The method of claim 1, wherein receiving the read notification indicating that the first notification data to the first client service has been interacted with by the user comprises receiving the read notification via a network from the first client device.
 9. The method of claim 1, wherein each of the first client service and the second client service comprises one of a social network service, an electronic messaging service, or a telecommunications service.
 10. The method of claim 1, wherein the first client service is a same service as the second client service.
 11. A method comprising: receiving, from a server, first notification data to display a first notification via a first client service hosted by a first client device of a user, wherein the first notification data to notify the user of a message; in response to receiving the first notification data, displaying the first notification provided via the first client service at the first client device of the user; receiving, from the server, a modify instruction that instructs the first client device to cause a modification of the first notification that has not been interacted with by the user to reflect that a second notification provided via a second client service to notify the user that the message has been interacted with by the user, wherein an interaction with the first notification or the second notification allows the user to view the message; and in response to receiving the modify instruction, causing, by a processing device, the modification of the first notification to indicate that the message has been viewed by the user.
 12. The method of claim 11, wherein causing the modification of the first notification comprises causing the modification of the first notification without receiving a user input at the first client device specifying that the message has been viewed by the user via the first client service.
 13. The method of claim 11, wherein causing the modification of the first notification comprises causing a deletion of the first notification.
 14. A system comprising: a memory; and a processing device, coupled to the memory, the processing device to: send first notification data to a first client service and second notification data to a second client service, wherein the first notification data and the second notification data notify a user of a message about an activity that is of interest to the user, wherein the first client service is hosted by a first client device of the user and the second client service is hosted by a second client device of the user; receive a read notification indicating that the first notification data sent to the first client service has not been interacted with by the user; determine that the second notification data sent to the second client service has been interacted with by the user; and responsive to determining that the second notification data sent to the second client service has not been interacted with by the user, send a modify instruction to the second client device that hosts the second client service, wherein the modify instruction to cause a modification of the second notification data that has not been interacted to reflect that the first notification data has been interacted with by the user.
 15. The system of claim 14, wherein to determine that the second notification data sent to the second client service has not been interacted with by the user, the processing device further to: update a first read status associated with the first notification data and a second read status associated with the second notification data in response to receiving the read notification, such that the first read status and the second read status have a read status indicator reflecting that the first notification data has been interacted with by the user.
 16. The system of claim 15, the processing device further to: initiate the first read status to indicate that the first notification data is unread via the first client service, wherein initiating the first read status to indicate that the first notification data is unread via the first client service comprises assigning a value to the first read status to indicate that the first notification data is unread via the first client service; and initiate the second read status to indicate that the second notification data is unread via the second client service, wherein initiating the second read status to indicate that the second notification data is unread via the second client service comprises assigning a value to the second read status to indicate that the second notification data is unread via the second client service.
 17. A non-transitory computer-readable medium comprising instructions that, responsive to execution by a processing device, cause the processing device to perform operations comprising: receiving, from a server, first notification data to display a first notification via a first client service hosted by a first client device of a user, wherein the first notification data to notify the user of a message; in response to receiving the first notification data, displaying the first notification provided via the first client service at the first client device of the user; receiving, from the server, a modify instruction that instructs the first client device to cause a modification of the first notification that has not been interacted with by the user to reflect that a second notification provided via a second client service to notify the user that the message has been interacted with by the user, wherein an interaction with the first notification or the second notification allows the user to view the message; and in response to receiving the modify instruction, causing, by a processing device, the modification of the first notification to indicate that the message has been viewed by the user.
 18. The non-transitory computer-readable medium claim 17, wherein causing the modification of the first notification comprises causing the modification of the first notification without receiving a user input at the first client device specifying that the message has been viewed by the user via the first client service.
 19. A non-transitory computer-readable medium comprising instructions that, responsive to execution by a processing device, cause the processing device to perform operations comprising: sending first notification data to a first client service and second notification data to a second client service, wherein the first notification data and the second notification data notify a user of a message about an activity that is of interest to the user, wherein the first client service is hosted by a first client device of the user and the second client service is hosted by a second client device of the user; receiving a read notification indicating that the first notification data sent to the first client service has been interacted with by the user; determining, by the processing device, that the second notification data sent to the second client service has not been interacted with by the user; and responsive to determining that the second notification data sent to the second client service has not been interacted with by the user, sending a modify instruction to the second client device that hosts the second client service, wherein the modify instruction causes a modification of the second notification data that has not been interacted with to reflect that the first notification data has been interacted with by the user.
 20. The non-transitory computer-readable medium of claim 19, wherein determining that the second notification data sent to the second client service has not been interacted with by the user, the operations further comprising: updating a first read status associated with the first notification data and a second read status associated with the second notification data in response to receiving the read notification, such that the first read status and the second read status have a read status indicator reflecting that the first notification data has been interacted with by the user. 